#version 330 core
out vec4 FragColor;

in vec2 UV;
in vec3 Position;

uniform vec3 cameraPos;
uniform sampler2D back;
uniform sampler2D front;

in VS_OUT{
	vec2 UV;
}fs_in;
void main()
{
//	if(gl_FragCoord.x<200){
//		FragColor = vec4(1.0, 0.0, 0.0, 1.0);
//	}else{
//		FragColor = vec4(0.0, 1.0, 0.0, 1.0);
//	}
//	FragColor = texture(front,UV);
	//
	if(gl_FrontFacing){
		FragColor = texture(front,fs_in.UV);
	}else{
		FragColor =texture(back,fs_in.UV);
	}
}

//整型变量gl_VertexID储存了正在绘制顶点的当前ID。当（使用glDrawElements）进行索引渲染的时候，这个变量会存储正在绘制顶点的当前索引。
//当（使用glDrawArrays）不使用索引进行绘制的时候，这个变量会储存从渲染调用开始的已处理顶点数量。

/**
	gl_FragCoord : gl_FragCoord的x和y分量是片段的窗口空间(Window-space)坐标(x,y对应glViewport设置的范围)，
                   gl_FragCoord的z分量等于对应片段的深度值
    gl_FrontFacing : 如果我们不（启用GL_FACE_CULL来）使用面剔除，那么gl_FrontFacing将会告诉我们当前片段是属于正向面的一部分还是背向面的一部分
                       注意，如果你开启了面剔除，你就看不到箱子内部的面了，所以现在再使用gl_FrontFacing就没有意义了。
                       gl_FrontFacing：true正面 false反面
    gl_FragDepth : 读取当前片段的窗口坐标，并获取深度值，只读；
    				GLSL提供了gl_FragDepth的输出变量，我们可以使用它来在着色器内设置片段的深度值。
    				如果着色器没有写入值到gl_FragDepth，它会自动取用gl_FragCoord.z的值。
    				缺点：禁用所有的提前深度测试，性能影响大
*/